#pragma once
#include "DeviceBase.h"

namespace RobotPlant { namespace RobotProxy{
	using namespace std;
	using namespace boost::join;
	using namespace RobotPlant::Common;

	/*
	A Differential Drive device usually consists of two wheels that can be driven independently. 
	However, this concept can be applied to other forms of locomotion such as legged robots, 
	like a hexabot with three legs on each side. 
	A key feature of a differential drive is that by driving the wheels in opposite directions the robot can rotate on the spot.
	*/
	class RP_ROBOTPROXY_API DiffDriveDevice : public DeviceBase
	{
	protected:

	public:
		/*
		Constructor
		*/
		DiffDriveDevice(RobotInstance* pParent,joint::spawn_type e=0);

		~DiffDriveDevice();

	protected:
	};
}}
